﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Chapter22
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// 第22章 XML
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            #region 01 XML 文档
            /*
             * 01 XML 元素
             * 02 特性
             * 03 声明
             * 04 XML 文档的结构
             * 05 XML 名称空间
             * 06 格式良好并有效的 XML
             * 07 验证 XML 文档
             * 07.01 模式
             * 07.02 XSD 模式
             * 07.03 XmlDocument 类中显示的 XSD 对话框
             * */
            #endregion

            #region 02 在应用程序中使用 XML
            /*
             * 01 XML 文档对象模型
             * 01.01 XmlDocument 类
             * 01.02 XmlElemetn 类
             * 01.03 修改节点的值
             * 02 选择节点
             * 03 XPath
             * */
            #endregion

            #region 03 小结
            #endregion

            #region 04 练习
            /*
             * 01
             * XmlAttribute newPages = document.CreateAttribute("pages");
             * newPages.Value = "1000+";
             * newBook.Attributes.Append(newPages);
             * 02
             * //elements 返回文档中所有节点
             * element[@Type='Noble Gas'] 返回 Type 特性的值是 Noble Gas 的每个元素
             * //mass 返回名为 mass 的所有节点
             * //mass/.. 返回包含 mass 所有节点
             * element/specification[mass='20.1797'] 选择包含 mass 节点值为 20.1797 的 specification 元素
             * element/name[text()='Neon'] 选择包含测试内容的节点，可使用 text() 函数，它会选择文本为 Neon 的 name 节点
             * 03
             * 选择 XML 文档的一部分时，并不是有效的、格式良好的 XML 文档，所以浏览器拒绝显示
             * */
            #endregion

            #region 05 本章要点
            #endregion
        }

        private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            if (e.Command == FindResource("Example01"))
                new Code02.Example01().Show();
            if (e.Command == FindResource("Example02"))
                new Code02.Example02().Show();
            if (e.Command == FindResource("Example03"))
                new Code02.Example03().Show();
            if (e.Command == FindResource("Example04"))
                new Code02.Example04().Show();
        }
    }
}
